//
//  NSString+XMGExtension.h

//  商信
//
//  Created by zhangjianhong on 16/7/2.
//  Copyright © 2016年 zhangjianhong. All rights reserved.


#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, languageType) {
    languageUnknow,
    languageZH,
    languageEn,
};
@interface NSString (XMGExtension)
    /// 判断是否含有小写字母
- (BOOL)hasLowerEnglishCharacter;
    /// 判断是否含有大写字母
- (BOOL)hasUpperrEnglishCharacter ;
    /// 判断是否含有符号字符
- (BOOL)hasSymbolCharacter;
    /// 是否包含数字
- (BOOL)hasNumber;
/**
 判断是否是URL地址

 */
/**
 *判断一个字符串是否是一个IP地址
 **/
- (BOOL)isValidIP;
- (BOOL)isUrl;
///电话号码替换***加密
- (NSString*)isPhoneSecret;
///是否是个手机号
- (BOOL)isPhone;
- (NSInteger)fileSize;
- (CGSize)sizeWithFont:(UIFont *)font maxW:(CGFloat)maxW;
- (CGSize)sizeWithFontSize:(CGFloat)fontSize maxW:(CGFloat)maxW lineBreakMode:(NSLineBreakMode)lineBreakMode;
- (CGSize)sizeWithMyFont:(UIFont *)font;
//文字获取纯宽度
-(CGFloat)stringWidthWithFont:(UIFont *)font;
//传入省，返回中国
+ (NSString *)returnChina:(NSString *)province;

//截取字符串中两个指定字符串中间的字符串
- (NSString *)subStringFrom:(NSString *)startString to:(NSString *)endString;

/**
 *  URLEncode
 */
- (NSString *)URLEncodedString;

/**
 *  URLDecode
 */
- (NSString *)URLDecodedString;

/**
 *  md5加密
 */
- (NSString *)md5;

/**
 字符串翻译

 @param key 翻译以后的字符
 @param arr 字符中替换的文字
 @return 翻译之后的字符
 */
+(NSString*)translatByKVCWithKey:(NSString*)key andReplaceArray:(NSArray*)arr;

+(languageType)returnCurrentLanguage;

/**判断字符串是否为空*/
+ (BOOL)isBlankString:(NSString *)string;

/**获取当前时间yyyy-MM-dd hh:mm:ss*/
+ (NSString *)getCurrentTime;
/**获取当前时间YYYY */
+ (NSString *)getYearTime;
/**时间转换*/
+(NSString *)stringWithTransformationTime:(NSDate *)timeDate;
    ///**获取当前时间yyyy-MM-dd hh:mm:ss*/
    //+(NSString *)stringWithTime:(NSDate *)timeDate;
/**计算生日*/
+(NSString *)stringWithBirthday:(NSDate *)timeDate;

/**yyyy-MM-dd'T'HH:mm:ss+H:mm*/
+ (NSString *)getYearDateTime;
/**tojson*/
+ (NSString *)toJson:(id)anyObject;
+ (NSString *)getBabyDetailAge:(NSString *)date;
/**获取时间戳*/
+ (NSString *)getCurrentTimeStamp;
/**时间戳转时间 yyyy-MM-dd*/
+ (NSString *)getDateStringWithTimeStr:(NSString *)str;
/**时间戳转时间 yyyy-MM-dd HH:mm*/
+ (NSString *)getDateStringWithTimeStr2:(NSString *)str2;
/**
 
  * 开始到结束的时间差
 
  */

+ (NSString *)dateTimeDifferenceWithStartTime:(NSString *)startTime endTime:(NSString *)endTime;
    //将时间数据（毫秒）转换为天和小时
+ (NSString*)getOvertime:(NSString*)mStr;

 /**
  输出云信错误

  @param code 错误代码
  */
 +(NSString*)outPutNimErrorWithErrorCode:(NSInteger)code;

+ (id)toArrayOrNSDictionary:(NSString *)jsonStr;
/** size转字符串 */
+ (NSString *)convertSize:(long long)size;

/** 拓展名输出本地图片 */
+ (NSString *)convertImageExt:(NSString *)ext;

/* 截取URL中的参数 */
- (NSMutableDictionary *)getURLParameters;
/**
 去掉浮点数后面的0并转为string格式

 @param num 浮点数
 */
- (NSString *)translateXiaoShuDianWithFloat:(CGFloat)num;

/**判断首个str是否为字母*/
-(BOOL)JudgeFirstIsLetter;

/**
  传入时间戳，返回月日时
 
 @param str 时间戳
 @return 月日时
 */
+ (NSString *)getTimeWihtMDHMWihtStr:(NSString *)str;

/**
 判断当前时间是否大于指定时间
 
 @param date 日
 @param timestr 时间
 @return yes 大于当前时间 NO小于当前时间
 */
- (BOOL)currentTimeGreaterThanDate:(NSString *)date TimeStr:(NSString *)timestr;

/**
 基础方法
 
 @param regex 正则表达式
 @return 正则验证成功返回YES, 否则返回NO
 */
- (BOOL)isValidateByRegex:(NSString *)regex;

/**
 验证手机号码
 
 @return 正则验证成功返回YES, 否则返回NO
 */
- (BOOL)isMobileNumber;

/**
 判断运营商
 各个运营商开头号码不同 需要根据运营商更新
 
 @return  正则验证成功返回YES, 否则返回NO
 */
+ (BOOL)isMobileNumberClassification;



- (NSString*)decimalStringValue;

/** 获取新UA */
+ (NSString *)getNewUserAgent;


    /// 数组s转str
    /// @param arr 数组内容
    /// @param str str
///例如:, / -等
+ (NSString *)changeArr2StrWithArr:(NSArray*)arr :(NSString*)str;
///根据字符串的高度/一行的高度 = 展示的行数
-(int)numberRowsStringSize:(CGSize)size font:(UIFont *)font Lines:(NSInteger)lines;

    /// 获取行高
    /// @param size 宽高
    /// @param font 字体
    /// @param lines 行数
- (CGRect)heightForStringSize:(CGSize)size Font:(UIFont *)font Lines:(NSInteger)lines;
//获取nssstring内容中的所有url地址
- (NSArray*)getURLFromSelfStr;
///返回一個隨機數字,字母字符串
+(NSString *)randomCarWithCount:(NSInteger)count;
@end
